home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / book / src / file.h < prev    next >
C/C++ Source or Header  |  1993-07-08  |  1KB  |  48 lines

  1. #if !defined(__FILE_H__)
  2.  
  3. #define __FILE_H__
  4.  
  5. /*  そのまま通せばいいコード  */
  6. #define israw(c)     ((0x20<=(c) && (c)<=0x80) || (0xA0<=(c) && (c)<=0xDF))
  7. /*  制御コード  */
  8. #define isctrl(c)    (0x00<=(c) && (c)<=0x1F)
  9.  
  10. /*  行の最大の長さ  */
  11. #define LINEMAX 80
  12.  
  13. /*  行管理  */
  14. #define LINEPTRs    1000    /*  1000行を一束  */
  15. #define LINEBLOCKs  1000    /*  1000ブロック一束  */
  16.  
  17. typedef struct _LP
  18. {
  19.     char    *buf ;          /*  各行の開始位置を指すポインタ    */
  20.     short   bytes ;         /*  各行の展開前の長さ(改行を含む)  */
  21. }   LINPTR ;
  22. typedef struct _LBLOCK
  23. {
  24.     LINPTR  ptr[LINEPTRs] ; /*  1000行をまとめてブロックとして管理  */
  25. }   LBLOCK ;
  26.  
  27. extern  LBLOCK *base[LINEBLOCKs] ;  /*  行ブロックを指すポインタの配列  */
  28.  
  29. typedef struct _FH      /*  ファイル・ヘッダ  */
  30. {
  31.     char    *file ;     /*  フルパスリスト  */
  32.     char    *name ;     /*  ファイル名のみ  */
  33.     int     line_max ;  /*  ファイルの行数 +1  */
  34.     int     line_num ;  /*  現在画面の最上行  */
  35.     int     line_now ;  /*  現在処理行(ファイル内) */
  36.     int     cur_pos ;   /*  現在処理行(画面内) */
  37. } HEADER ;
  38.  
  39. typedef enum { FILE_READ, FILE_REFORM, FILE_PREVIEW } readtype_t ;
  40. typedef enum { BACKUP, RESTORE, INIT } back_t ;
  41.  
  42. extern  void    free_head( void ) ;
  43. extern  HEADER *read_sub( char *file, readtype_t reform ) ;
  44. extern  void    backup_file( back_t flag ) ;
  45.  
  46. #endif /*  !defined(__FILE_H__)  */
  47.  
  48.